草庐IT

Java selenium 抓取元素的整个 html 内容

全部标签

ruby-on-rails - 如何使用 JSON 的 Nokogiri 中的 XPath 从 eBay 和亚马逊抓取图像

我正在尝试使用Nokogiri和XPath从网站上抓取图像,但到目前为止收效甚微。对于其HTML具有img和src的典型网站,我可以使用:tmp2=Nokogiri::HTML(open(site_url))tmp2.xpath("//img/@src").eachdo|src|...dowhateverend但是,某些网站(如Amazon和eBay)仅使用JavaScript触发特定图像。如果我查看代码,我可以看到数组中的数据。例如,来自Amazon:P.when('jQuery','cf').execute(function($,cf){P.load.js('http://z-ec

ruby - Jekyll 不显示任何内容

我正在使用Jekyll开发博客。当我使用命令jekyll运行服务器时,内容不会生成。在终端中显示的内容下方:WARN无法确定响应正文的内容长度。设置响应的内容长度或设置Response#chunked=trueindex.html我使用了默认的Jekyll样板文件。layout:default{%forpostinpaginator.posts%}{{post.title}}Publicadoem:{{post.date|date:"%d/%m/%y"}}{{post.content}}{%endfor%}post.html也是标准。layout:default{{page.title

ruby - 如何更优雅地删除 Ruby 数组所有元素中的重复项?

我想删除Array对象中的重复项目。最好举例说明。我有以下数组entries=["abc","ab","c","cd"]我想要一种方法,通过从Array中的元素中删除重复项来清理它,并返回一个Array,每个唯一项都有一个元素。所以这是我为此编写的方法:classArraydefclean_up()self.join("").split("").uniqendend所以现在当我调用entries.clean_up时,我得到以下结果:["a","b","c","d"]这正是我想要的结果,但是在Ruby中有更优雅的方法吗? 最佳答案 s

ruby-on-rails - ActionMailer HTML 编码 hell - 特殊字符替换为垃圾

我有UTF-8字符串:Website•Facebook那是中间的一颗子弹又名•或0xE20x800xA2此值已正确存储在数据库中,并使用默认设置使用Rails3和ruby​​1.9.3正确显示在屏幕上。我正在尝试通过HTML电子邮件发送此邮件,但是当一切都说完之后,接收端看到的是垃圾:这背后的代码很简单,我有一个ActionMailer子类(默认使用UTF-8)设置以在布局中发送带有UTF-8内容编码的HTML电子邮件:email.html.erb布局文件:"all"%>内容使用与呈现网页相同的View,重要的一行是:我已经尝试了很多很多force_encoding的排列,e

arrays - 数组元素赋值的奇怪行为

今天我遇到了数组元素赋值的一些奇怪行为:arr=["a","b"]arr2=[1,2]arr.unshift(arr2)#=[[1,2],"a","b"]arr.push(arr2)#=>["a","b",[1,2]]但是,这是有道理的:arr[0,0]=arr2#=>[1,2,"a","b"]我知道在[0,0]中,第一个零是index,第二个是该数组中从index开始的元素数。在我看来它应该与unshift相同,但事实并非如此。谁能解释一下这种行为? 最佳答案 如果我们diveintotherubysourcecode,我们会找到

ruby - Watir 无法找到我在 Chrome 的 DOM 检查器中看到的元素

这是一个研究案例:......我正在尝试使用WatirRuby的API引用名为“bar”的嵌入元素。该元素由Chrome的DOM检查器显示,但我无法使用Watir的任何查找方法找到它:browser.embeds()#onlyisfoundbrowser.html.include?'bar'#=>false为什么会这样?为什么Watir不显示完整的HTML?如果我有不同框架中的元素或由Javascript初始化函数动态插入的元素,是否可以使用Watir访问它们?谢谢 最佳答案 如果元素在框架中,你必须使用这样的东西:browser.

ruby - Heroku 和网络抓取

我有一个nokigiri网络抓取工具,它发布到我试图发布到heroku的数据库。我有一个sinatra应用程序前端,我想从数据库中获取它。我是Heroku和Web开发的新手,不知道处理此类问题的最佳方法。我是否必须将上传到数据库的网络爬虫脚本放在sinatra路由下(如mywebsite.com/scraper),并让它变得如此模糊以至于没有人访问它?最后,我想让sinatra部分成为一个从数据库中提取的restapi。感谢大家的参与 最佳答案 您可以采用两种方法。第一个是通过控制台使用herokurunYOURCMD运行scrap

ruby - 如何 rb_protect ruby​​ 中的所有内容

我想从我自己的C代码中调用ruby​​代码。万一出现异常,我必须rb_protect我调用的ruby​​代码。rb_protect看起来像这样:VALUErb_protect(VALUE(*proc)(VALUE),VALUEdata,int*state)因此proc必须是一个接受VALUE参数并返回VALUE的函数。我必须调用很多不能那样工作的函数。我怎样才能rb_protect它们不引发异常?我想过使用Data_Make_Struct将所有内容包装到一个ruby​​对象中并在其上调用方法。Data_Make_Struct本身可能引发异常。我如何rb_protectData_Make

ruby - 在数组中找到 block 返回 true 的第一个元素并返回 block 的返回值

我需要遍历数组并将提供的block应用于每个元素,并返回block返回的第一个真值,这意味着我需要在获得真值后立即停止。下面是我的代码。我是ruby新手,我不确定这段代码是否是在重新发明轮子。也许已经有一个或多个库方法可以做到这一点?还是可以简化此代码?RS={:x=>%w(\d+a\d+bb\d+ccc\d+).map{|x|/^#{x}$/},:y=>%w(\w+1\w+22\w+333\w+).map{|x|/^#{x}$/}}.freezedeffinds,tr=RS[s]ifrr.eachdo|p|m=p.matchtreturnmifmendnilendendpfind:x

ruby-on-rails - 从 Rails 上的 base64 编码图像中检索文件名和内容类型

我正在尝试检索以base64编码格式接收的图像的内容类型和文件名。这是使用base64编码图像执行POST请求的代码require'net/http'require"rubygems"require'active_support'url=URI.parse('http://localhost:3000/')image=ActiveSupport::Base64.encode64(open("public/images/rails.png").to_a.join)post_params={'image'=>image}Net::HTTP.post_form(url,post_params